/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeCombo.js<br>
 * 日期：2016年8月24日<br>
 * 作者: 林秀桃<br>
 * 功能：用于创建其他复杂的组合组件<br>
 *     （比如：组合框 combobox、组合树 combotree、组合网格 combogrid，等等）的基础组件。
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeCombo<br>
 * 类型功能：组合组件声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositeCombo = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeCombo",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		:	
	 * {
	 * 		width	: "300",			//组件宽度
	 * 		height  : "300",			//组件高度
	 * 		panelWidth  : "300",		//下拉面板的宽度
	 * 		panelHeight : "300",		//下拉面板的高度
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onShowPanel',
		                     'onHidePanel',
		                     'onChange',
		                     'onResize',
		                     'onClickButton',
		                     'onClickIcon',
		                     'onBeforeValidate',
		                     'onValidate'
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("input",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.combo(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod : 方法名称
	 * 参数输入：objArgs : 更具方法名称，在该类方法中查找对应参数，或easyUI官网对应组件的方法中检索
	 * 函数返回：根据调用方法，返回相应的数值<br>
	 * 异常信息：无<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().combo(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.options<br>
	 * 函数功能：返回选项（options）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：返回选择的对象<br>
	 * 异常信息：无<br>
	 */
	options : function(){
		return this.getElement().combo('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.panel<br>
	 * 函数功能：返回下拉面板对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	panel : function(){
		return this.getElement().combo('panel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.textbox<br>
	 * 函数功能：返回文本框对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	textbox : function(){
		return this.getElement().combo('textbox');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.resize<br>
	 * 函数功能：调整组件的宽度。<br>
	 * 参数输入：sWideh:100<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resize : function(nWideh){
		return this.getElement().combo('resize',nWideh);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.showPanel<br>
	 * 函数功能：显示下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	showPanel : function(){
		return this.getElement().combo('showPanel');
	},
	 
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.destroy<br>
	 * 函数功能：销毁组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	destroy : function(){
		return this.getElement().combo('destroy');
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.hidePanel<br>
	 * 函数功能：隐藏下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	hidePanel : function(){
		return this.getElement().combo('hidePanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.disable<br>
	 * 函数功能：禁用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disable : function(){
		return this.getElement().combo('disable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.enable<br>
	 * 函数功能：启用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enable : function(){
		return this.getElement().combo('enable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.readonly<br>
	 * 函数功能：启用/禁用只读模式。该方法自版本 1.3.3 起可用。<br>
	 * 参数输入：mode: true/false<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	readonly : function(mode){
		return this.getElement().combo('readonly',mode);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.validate<br>
	 * 函数功能：验证输入的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	validate : function(){
		return this.getElement().combo('validate');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.isValid<br>
	 * 函数功能：返回验证结果。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：true/false : boolean 类型的值true 表示进行了校验，false表示当前组件未进行校验<br>
	 * 异常信息：无<br>
	 */
	isValid : function(){
		return this.getElement().combo('isValid');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.clear<br>
	 * 函数功能：清除组件的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	clear : function(){
		return this.getElement().combo('clear');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.reset<br>
	 * 函数功能：重置组件的值。该方法自版本 1.3.2 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	reset : function(){
		return this.getElement().combo('reset');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.getText<br>
	 * 函数功能：获取输入的文本。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getText : function(){
		return this.getElement().combo('getText');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.setText <br>
	 * 函数功能：设置文本值。<br>
	 * 参数输入：sText： 123<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setText : function(sText){
		return this.getElement().combo('setText',sText);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.getValues<br>
	 * 函数功能：获取组件的值的数组。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValues : function(){
		return this.getElement().combo('getValues');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.setValues<br>
	 * 函数功能：设置组件的值的数组。<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValues : function(aValues){
		return this.getElement().combo('setValues',aValues);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.getValue<br>
	 * 函数功能：设置组件的值<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValue : function(){
		return this.getElement().combo('getValue');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.setValue<br>
	 * 函数功能：设置组件的值。<br>
	 * 参数输入：sValue: 'abc'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setValue : function(sValue){
		return this.getElement().combo('setValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.button<br>
	 * 函数功能：返回按钮对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：当前按钮对象<br>
	 * 异常信息：无<br>
	 */
	button : function(){
		return this.getElement().combo('button');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.initValue<br>
	 * 函数功能：设置初始value值。<br>
	 * 参数输入：sValue：'sun'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	initValue : function(sValue){
		return this.getElement().combo('initValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.getIcon<br>
	 * 函数功能：获取具体图表对象。<br>
	 * 参数输入：nIndex：5<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getIcon : function(nIndex){
		return this.getElement().combo('getIcon',nIndex);
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.enableValidation<br>
	 * 函数功能：启用验证。该方法自版本 1.3.4 起可用。。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enableValidation : function(){
		return this.getElement().combo('enableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.disableValidation<br>
	 * 函数功能：禁用验证。该方法自版本 1.3.4 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disableValidation : function(){
		return this.getElement().combo('disableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.resetValidation<br>
	 * 函数功能：重置验证<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resetValidation : function(){
		return this.getElement().combo('resetValidation');
	}

});